package com.bian.plugin.boot.framework.support;

import com.bian.plugin.boot.framework.plugin.PluginInfo;

import java.util.List;

/**
 * @author bian
 * @since 1.0
 * 2021/2/22
 */
public interface PluginRegistery {
    /**
     * 在注册中心中加入一个插件信息，此时还没有启动，仅仅是放入
     * @param pluginInfo
     * @return
     */
    boolean add(PluginInfo pluginInfo);


    /**
     * 将某个plugin从注册中心中移除
     *
     * @param pluginId
     * @return
     */
    PluginInfo remove(String pluginId);

    /**
     * 根据pluginId获取对应的插件信息
     *
     * @param pluginId
     * @return
     */
    PluginInfo findByPluginId(String pluginId);

    /**
     * 获取所有插件信息
     *
     * @return
     */
    List<PluginInfo> getAllPluginInfos();

}
